#!/bin/bash

# nginx问题修复脚本
# 解决nginx.pid文件缺失和缓冲区警告问题

echo "=== 开始修复nginx问题 ==="

# 1. 创建nginx.pid文件目录
echo "1. 创建nginx.pid文件目录..."
sudo mkdir -p /run/nginx
sudo chown nginx:nginx /run/nginx
sudo chmod 755 /run/nginx

# 2. 检查nginx配置语法
echo "2. 检查nginx配置语法..."
sudo nginx -t

if [ $? -eq 0 ]; then
    echo "✅ nginx配置语法检查通过"
    
    # 3. 重新加载nginx配置
    echo "3. 重新加载nginx配置..."
    sudo nginx -s reload
    
    if [ $? -eq 0 ]; then
        echo "✅ nginx配置重新加载成功"
    else
        echo "❌ nginx配置重新加载失败，尝试重启nginx..."
        sudo systemctl restart nginx
    fi
else
    echo "❌ nginx配置语法检查失败，请检查配置文件"
    exit 1
fi

# 4. 检查nginx进程状态
echo "4. 检查nginx进程状态..."
sudo systemctl status nginx --no-pager

# 5. 检查nginx.pid文件
echo "5. 检查nginx.pid文件..."
if [ -f /run/nginx.pid ]; then
    echo "✅ nginx.pid文件存在: /run/nginx.pid"
    echo "PID: $(cat /run/nginx.pid)"
else
    echo "⚠️ nginx.pid文件不存在，但nginx可能正常运行"
fi

# 6. 检查错误日志
echo "6. 检查nginx错误日志（最近10行）..."
sudo tail -10 /var/log/nginx/error.log

echo "=== 修复完成 ==="
echo "请检查上面的输出，确保没有错误信息"
echo "缓冲区警告是正常现象，表示nginx在处理大文件时使用临时文件缓冲"